package middleware

import (
	"fmt"
	"ginEssential/response"
	"github.com/gin-gonic/gin"
)

func RecoverMiddleware() gin.HandlerFunc {
	return func(c *gin.Context) {
		defer func() {
			if err:=recover();err!=nil{
				response.Failed(c,nil,fmt.Sprintf("%s",err))
			}
		}()
		c.Next() //这里一定要c.NEXT()
		//虽然加不加都是要进去下一个函数，但是如果你不加，那么就是recoverMiddleware函数整个执行完之后进入，这时候defer也执行完毕了，
		//但是你加了next，你就会在recoverMiddleware之中 进去下一个函数去执行，derfer函数还在，出了paninc就可以收到
		//你不加的话 整个函数已经执行完了 defer也没了，所以抓不到paninc
	}
}